public class Draw {
    private int height; // 高度属性

    // 构造方法，设置高度，如果高度小于3则抛出异常
    public Draw(int height) {
        if (height < 3) {
            throw new IllegalArgumentException("高度必须至少为3");
        }
        this.height = height;
    }

    // 绘制三角形的方法
    public void drawTriangle() {
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < height - i - 1; j++) {
                System.out.print(" ");
            }
            for (int k = 0; k < 2 * i + 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    // 绘制矩形的方法，接收一个宽度参数
    public void drawRectangle(int width) {
        if (width < 1) {
            throw new IllegalArgumentException("宽度必须至少为1");
        }
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    // 绘制正方形的方法（正方形是矩形的一种特例）
    public void drawSquare() {
        drawRectangle(height);
    }

    // 绘制平行四边形的方法（这里以简单的形式表示，可能会有一些近似）
    public void drawParallelogram(int baseLength) {
        if (baseLength < 1) {
            throw new IllegalArgumentException("底边长度必须至少为1");
        }
        int slope = (height - 1) / (baseLength / 2); // 简单的斜率计算，这里可能不是完全准确的平行四边形
        for (int i = 0; i < height; i++) {
            int start = (i % (baseLength + slope)) * (slope == 0 ? 1 : 2 / slope); // 计算每行开始的偏移量
            start = Math.min(start, baseLength); // 确保偏移量不超过底边长度
            for (int j = 0; j < baseLength; j++) {
                if (j >= start && j < start + (height - Math.abs(i - (height - 1) * (slope == 0 ? 1 : baseLength / (2 * slope))))) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

    // 主方法，用于测试
    public static void main(String[] args) {
        try {
            Draw drawer = new Draw(5); // 创建一个Draw对象，高度为5

            System.out.println("绘制三角形:");
            drawer.drawTriangle();
            System.out.println();

            System.out.println("绘制矩形 (宽度为8):");
            drawer.drawRectangle(8);
            System.out.println();

            System.out.println("绘制正方形:");
            drawer.drawSquare();
            System.out.println();

            System.out.println("绘制平行四边形 (底边长度为6):");
            drawer.drawParallelogram(6);
            System.out.println();
        } catch (IllegalArgumentException e) {
            System.err.println("错误: " + e.getMessage());
        }
    }
}